{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a432e8a4",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "0a00b794",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = np.load('./data3D1.csv.npy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "479d60b0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define dimensions\n",
    "Nx, Ny, Nz = 60,60,300\n",
    "X, Y, Z = np.meshgrid(np.arange(Nx), np.arange(Ny), -np.arange(Nz))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f9c8ef10",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data.transpose((0, 2, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "542e303f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60, 60, 300)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "7ba7828f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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o9GIiCAihIaGOvWcioLflWeqvwctPjMeKKVcyn5Qnscee4zs7GxWrFhBw4YNXfIj0saEqgnUeE5PERoaSmlpqcMpiyrBbvA7nqn+HrR41UG3cePG1pxVp0+fprz3syuEhISwdOlS+vXrR7du3ejZsycvvPACM2dW36JsMSYMGDCAefPm6SmpDd4oOBxofPbZZxiNRkpKSrh48aJLBZJFxO4vqYh8CHxYwbmdVJDTrabi1RHb4MGDWb7cFFK2fPlyhgypTkr2qomKiuKdd95hypQpnD9/ni5dujidCWTRokW6IEw5vFlw2N/57LPPrBuYflhLS0t57733yMkJ6ByN1cbR7B5KqRZKqU1KqYNKqQNKqVYe65OnjAejR49m69atnDt3jsaNG/PMM88wdOhQRo4cyYkTJ2jZsiUffPCBR0JP1qxZw+uvv86HH35IYWEhe/fuddpaqo0J3i047O9YhMyCiJCSksLbb7/N5s2bGTRoEIMHD+aGG26o4Al28WqsqLuNB0qpF4FMEXnBXPavgYj8rmK72eAxR0Q2K6WiAGNFxhFXCaggeEcREZ566imKiop4+umnOXv2LGlpafz1r3916nkWcQuWWEZHCeZ4zupQXszAFG+5YcMGli5dSmlpKRMmTGDYsGHUrl3bmSYCXdgOYbLEnjY7DG8VkQ7lrumMKf60jzNtVLtPwShsYCo2c9ttt3H//fczePBgjhw5wsMPP+zUs2xdGaZNmxb0C+Na0EzYE7STJ0/y9ttvs379evr378/EiRPp1KmTq4awQBc2R7J7DAXGAUVAa2ALMFN+K9LsVoJW2ADOnTvHzTffzNKlS+nQoQM//vij03VKbQuJBOuUVAuafTErLS1ly5YtLFmyhKysLMaNG8ddd91FRESEu5r1trB9DsSVO1wHKLDZr052j+W2QqaUyhKRMutsSqnhwBLgcuAE8D6mbB9LXHgrFRLUwgawe/duxo0bx6effkrdunXZtWuX0+tttmtNwSRuFVV/qimRAmBf0NLT01mxYgUffvgh1113HRMnTqRnz55udVMy41VhczcOTkWvAeaKyB/M+/cB14jIQx7pU7ALG5gssGvWrGHFihWkpqZy9OhR5s6d69SzgsmYoAUNXn311TK+ikajkW+++Ya33nqLkydPcv/993PvvfdSr55Ho5cCXdheAs7bGA9iReTxcteE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zBxl/fr1xMfH06tXL2tkgEbj1fSkFmFp1aoVYFp/u+KKKwDYt28fb7/9NnPmzGHmzJmcOXOGkJAQSktLq9WG7RfdWzRq1Ii33nqLsWPHkp+fT+fOnb3q3zZ79mxWr15t3RcRUlJSeOqpp6wuG0uXLuWzzz7jjjvuCBpRA/j2229Zt24drVq1YtSoUXz55Zc88sgjZGdnU1JSAphG8BbfNE3NwKc1D6ZNm8aECRPIzs5mw4YNpKen06dPHwoKCli6dCnbt2+v9jOfeOIJVqxYQVhYGAUFBeTm5nLHHXewceNGjwfML1myhM8//5y3336bgoICkpOTPSZw5fOdLViwgLFjx7Jjxw7efvttiouLmTBhAsOGDfNYmJm/sXXrVubNm8f69esZMWIEd955p9V40L179zJ+k36GNh64GZ8klDcajYCp6rtlNFFYWMijjz7Kfffdx/jx44mLi+PQoUPVfvbzzz9Pamoqx48fZ9WqVdx0002sXLnSGjAPeCxgfuzYsTRs2JDXX3+diIgIEhMTee6559zahj1jQHZ2NidPnqRPnz58++23vPLKK3z55ZeMHj26xohaeebOncvLL79MYmIi58+f58EHH/R1lzRexCfZ/izrZrVq1aJDhw4kJyfzpz/9iXr16pGamsqIESNIS0tj9erVdO7cmTvuuMNlF5C5c+cyatQonnrqKS6//HKPfNGVUixYsID+/fvTo0cP+vbta13ncwV7a2elpaV88cUXvPXWW2RmZjJu3DhatmxJYWEhnTt3drlNT+KpGhb9+vWjX79+ALRp04YdO3Z46B1o/B2/Kr/3+eef88gjjzB8+HAefvhhCgoK6NOnD59//jldu3b1Zldc4uTJk9x22218+OGHNG3alOTkZKfyt9kTtIyMDFasWMHq1au59tprmThxIpdffjlKKYxGIx9++CHDhw/367AnESE/P5+oqCiKi4vp06cPCxYs4OWXXw4k3zN34r//WQGK39Q2W7t2LXfeeSezZs1izpw5JCQkcOnSJa688soyi90//vijD3vpGJdddhmvvPIK999/P4WFhXTp0oXZs2c7dK89Vw2j0ci2bdtISkrirrvuIi4ujm+++YZ///vfXHHFFVYRCwkJYcSIEX4tamAa2UZFRQGmuNTi4mKUUtr3TOM2/EbYBg8ezK5du7jnnnsoLi5m69atvPvuu3Tr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\n",
      "text/plain": [
       "<Figure size 360x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "kw = {\n",
    "    'vmin': data.min(),\n",
    "    'vmax': data.max(),\n",
    "    'cmap':plt.cm.gray,\n",
    "}\n",
    "\n",
    "# Create a figure with 3D ax\n",
    "fig = plt.figure(figsize=(5, 4))\n",
    "ax = fig.add_subplot(111, projection='3d')\n",
    "\n",
    "# Plot contour surfaces\n",
    "top = ax.contourf(\n",
    "    X[:, :, 0], Y[:, :, 0], data[:, :, 0],\n",
    "    zdir='z', offset=0, **kw\n",
    ")\n",
    "left = ax.contourf(\n",
    "    X[0, :, :], data[0, :, :], Z[0, :, :],\n",
    "    zdir='y', offset=0, **kw\n",
    ")\n",
    "right = ax.contourf(\n",
    "    data[:, -1, :], Y[:, -1, :], Z[:, -1, :],\n",
    "    zdir='x', offset=X.max(), **kw\n",
    ")\n",
    "# --\n",
    "\n",
    "\n",
    "# Set limits of the plot from coord limits\n",
    "xmin, xmax = X.min(), X.max()\n",
    "ymin, ymax = Y.min(), Y.max()\n",
    "zmin, zmax = Z.min(), Z.max()\n",
    "ax.set(xlim=[xmin, xmax], ylim=[ymin, ymax], zlim=[zmin, zmax])\n",
    "\n",
    "# # Plot edges\n",
    "# edges_kw = dict(color='0.4', linewidth=1, zorder=1e3)\n",
    "# ax.plot([xmax, xmax], [ymin, ymax], 0, **edges_kw)\n",
    "# ax.plot([xmin, xmax], [ymin, ymin], 0, **edges_kw)\n",
    "# ax.plot([xmax, xmax], [ymin, ymin], [zmin, zmax], **edges_kw)\n",
    "\n",
    "# Set labels and zticks\n",
    "ax.set(\n",
    "    xlabel='X [km]',\n",
    "    ylabel='Y [km]',\n",
    "    zlabel='Z [m]',\n",
    "#     zticks=[0, -150, -300, -450],\n",
    ")\n",
    "\n",
    "# Set distance and angle view\n",
    "# ax.view_init(elev=elev,azim=azim)#改变绘制图像的视角,即相机的位置,azim沿着z轴旋转，elev沿着y轴\n",
    "ax.view_init(40,-30)\n",
    "ax.dist = 10\n",
    "\n",
    "# Colorbar\n",
    "fig.colorbar(right, ax=ax, fraction=0.02, pad=0.1, label='Name [units]')\n",
    "\n",
    "# Show Figure\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8d1ce611",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "83cacf97",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "669c9654",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8e8d4024",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7beca8f2",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
